package com.boarsoft.boar.sequence.biz;

import com.boarsoft.boar.sequence.entity.SequenceInfo;
import com.boarsoft.boar.sequence.entity.SequenceSegment;
import com.boarsoft.common.dao.PagedResult;

public interface SequenceSegmentBiz {
	/**
	 * 手动新增或修改号段
	 * 
	 * @param o
	 */
	void save(SequenceSegment o);

	/**
	 * 删除号段
	 * 
	 * @param id
	 */
	void delete(String id);

	/**
	 * 查询指定序列已创建的号段
	 * 
	 * @param sequenceId
	 * @param orderBy
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	PagedResult<SequenceSegment> list(String sequenceId, String orderBy, int pageNo, int pageSize);

	/**
	 * 分配一个新号段给指定节点，如果没有可用号段，则创建一个新的号段<br>
	 * 分配不成功则返回null。
	 * 
	 * @param seq
	 * @param node
	 * @return
	 */
	SequenceSegment assign(SequenceInfo seq, String node);

	/**
	 * 
	 * @param id
	 * @return
	 */
	SequenceSegment get(String id);

}